home *** CD-ROM | disk | FTP | other *** search
- Zoo
-
- A Fast File Archiver
- Version 1.10 - 24 August 1986
-
- by
-
- Rahul Dhesi
-
-
- INTRODUCTION
-
- Zoo is a utility for creating and maintaining libraries or archives of files
- in compressed form. It requires a computer system with MS-DOS version 2.00
- or greater. IBM compatibility is not a requirement.
-
- Zoo is a 29 kilobyte executable file. It can extract archived files in
- about 80 kilobytes of available memory, and can function fully in about 110
- kilobytes of available memory.
-
- A companion program, Ooz, is also provided. All that Ooz can do is extract
- files from Zoo archives, but it occupies less disk space (about 11 kilo-
- bytes) and needs less available memory (about 60 kilobytes).
-
- Also provided is AtoZ, a batch program that will convert a subdirectory full
- of files in other formats (especially *.LBR or *.ARC) to Zoo archives.
-
- Versions 1.x of Zoo, Ooz and AtoZ are in the public domain. This means that
- you can freely use them, make copies, give them away, and even sell them.
- The source code is not being distributed, but version 2.00 of Zoo, when it
- appears, will be accompanied by generic source code in C.
-
-
- DISCLAIMER
-
- Zoo, Ooz, and Atoz are provided to you on an "as is", "you owe me nothing, I
- owe you nothing" basis. If this warranty gives you any specific legal
- rights, I would like to know what they are, especially if they vary from
- state to state.
-
-
- COMMAND SUMMARY
-
- Zoo has two types of commands: Expert commands, which consist of one com-
- mand letter followed by zero or more modifier characters, and Novice com-
- mands, which consist of a hyphen ("-") followed by a command word that may
- be abbreviated. Novice commands let you begin using Zoo quickly. Unlike
- Expert commands, which are case-sensitive, Novice commands can be given in
- any combination of upper- and lowercase characters.
-
- Expert commands are cryptic but offer you many more flexible options. Start
- with the Novice commands and switch to using the Expert commands as soon as
- you can.
-
-
- 1. Zoo Novice Command Format:
-
- ZOO cmd archive[.ZOO] [file] ...
-
- The "archive" is the filename of the archive you want to use, and the
- program will assume an extension of ".ZOO" if you do not supply one. The
- "file" is any filespec.
-
- Both the "archive" and the "file" names may be pathnames. Pathnames may
- contain both "/" and "\" characters. The "file" name (but not the "archive"
- name) may also contain the standard DOS-style wildcard characters "*" and
- "?". The "..." means that several filespecs may be given, separated by
- spaces.
-
- A filespec ending with "/" or "\" is assumed to refer to all files in that
- directory.
-
- Each Novice command works in two stages. First, the command does its inten-
- ded work. Then, if the result was that one or more files were deleted in
- the specified archive, the archive is packed to recover space.
-
- If packing occurs, an unpacked backup copy of the archive is always left
- behind, with an extension of ".bak". The packed archive always appears in
- the current directory, even if the original archive was on a different disk.
- This is intended to allow you to economize on disk space by simply using two
- disks if there is not enough space on a single disk to hold both the archive
- and its backup copy.
-
- Novice Equivalent
- Command Description Expert Command
- ------- ----------- --------------
- -add add files to archive aP
- -extract extract files from archive x
- -move move files to archive aMP
- -test test archive integrity xNd
- -print extract files and send to standard output xp
- -delete delete files from archive DP
- -list list information about archived files l
- -update update archive by adding new or newer files aunP
- -freshen freshen archive by adding newer files auP
- -comment allows user to attach comments to files c
-
- Novice commands may be abbreviated as much as you wish, up to a minimum of a
- hyphen ("-") followed by at least one command character. For example, the
- novice command "-extract" may be abbreviated to "-ext", "-ex", or "-e".
- Novice commands are described in more detail later.
-
-
- 2. Zoo Expert Command Format:
-
- ZOO {acDehlPTuUvx}[dEfnMNoOpPquv1] archive[.ZOO] [file] ...
-
- The characters enclosed within {} are commands. Choose any one of these.
- The characters enclosed within [] just to the right of the {} are modifiers
- and zero or more of these may immediately follow the command character. All
- combinations of command and modifier characters may not be valid.
-
- In general, [] encloses something that may (sometimes) be omitted and {}
- encloses a set of items from which exactly one must be selected. The
- archive and file names are as described for Novice commands above. The
- archive and file names may be in any combination of upper- and lowercase
- characters, but the command and modifier characters are case-sensitive.
-
- Invoking Zoo as "zoo h" will give a help screen. Zoo Expert commands are
- described in detail later.
-
-
- 3. Ooz Command Format
-
- The Ooz command format is as follows:
-
- OOZ archive[.ZOO] [file] ...
-
- Ooz is trivial to use; just give it the name of the archive and it will
- extract all files from it, or specify which files you want to extract and
- only those will be extracted. All extracted files go into the current
- directory.
-
-
- NOVICE COMMANDS
-
-
- 1. Adding Files to an Archive
-
- Format: ZOO -add archive[.ZOO] file ...
-
- The specified files are added to the archive. If all specified files
- were added without any error, and if this resulted in deletion of a
- file that was already in the archive, the archive is packed. If
- packing of the archive occurs, the unpacked archive is renamed to have
- an extension of ".bak" and the packed archive always appears in the
- current directory on the current disk.
-
- For example, the command "zoo -add qmodem *.com *.00? \doc\q*.doc"
- would add the following files to archive "qmodem.zoo": all files of
- the form *.com and *.00? in the current directory, and all files of the
- form q*.doc in the \doc subdirectory.
-
- The archive can be in a different directory or on a different disk.
- Thus "zoo -add c:\scandals\misc \fortran\ \cobol\*.doc" adds files to
- the archive "misc.zoo" in the directory "c:\scandals". The files added
- are: all files in the directory "\fortran" and all *.doc files in the
- directory "\cobol".
-
- If the filespecs given match duplicate filenames, each matching
- filename is used only once. This is true even if the duplicate
- filenames refer to different files in different directories.
-
- Zoo will not add an archive to itself, nor add the archive's backup to
- itself, nor add the temporary file {zoo}.@@@ to an archive, nor add any
- other file that has the same name as these.
-
-
- 2. Extracting Files from an Archive
-
- Format: ZOO -extract archive[.ZOO] [file] ...
-
- The specified files are extracted from the archive. If no file was
- specified, all files are extracted from the archive. All extracted
- files go into the current directory.
-
- If a file being extracted would overwrite an already-existing file of
- the same name, Zoo asks you if you really want to overwrite it. You
- may answer the question with "y", which means yes, overwrite; or "n",
- which means no, don't overwrite; or "a", which means assume the answer
- is "y" for this and all subsequent files.
-
-
- 3. Moving Files to an Archive
-
- Format: ZOO -move archive[.ZOO] file ...
-
- -Move works just like -add, except that after all files have been
- added, if no error occurred, the added files are deleted from disk.
-
-
- 4. Testing an Archive
-
- Format: ZOO -test archive[.ZOO]
-
- This is equivalent to the -extract command, except that extracted files
- are not saved. If no CRC error or other error occurs during execution
- of the -test command, this indicates with a high degree of confidence
- that the archive is not corrupted.
-
-
- 5. Printing Files from an Archive
-
- Format: ZOO -print archive[.ZOO] [file] ...
-
- This option extracts specified files from the archive and sends the
- extracted data to standard output, which is normally the screen. The
- output may be directed to a printer or a disk file using DOS's redirec-
- tion character ">".
-
- Zoo precedes the data of each extracted file by a brief header
- displaying the name of the file.
-
- Error messages are piped to standard output as well. However, if a bad
- CRC is detected, the bad CRC message is sent both to the screen and to
- the standard output.
-
-
- 6. Deleting Files in an Archive
-
- Format: ZOO -delete archive[.ZOO] file ...
-
- The specified files are deleted from the archive, and then the archive
- is packed to recover space that was occupied by the deleted files.
-
- As a safety feature, if the user deletes all files in an archive, no
- packing of the archive is done and the deleted files may be recovered
- with the Expert command U (undelete). To delete an archive entirely,
- use DOS's "del" or "erase" command.
-
-
- 7. Listing Files in an Archive
-
- Format: ZOO -list archive[.ZOO] [file] ...
-
- This gives a list of the specified files along with information about
- each file's original size, size as stored in the archive, compression
- factor, and date. If no files are specified, all files in the archive
- are listed.
-
- If a file would need to be extracted with a version of Zoo higher than
- the current version, Zoo displays the minimum version number needed.
-
- A summary line displays a count of files listed, the total of all
- original sizes and current sizes, and a net compression factor. The
- actual size of an archive is always somewhat greater than the total of
- the current sizes of files in it because of the directory information
- that is also kept in the archive.
-
-
- 8. Updating an Archive
-
- Format: ZOO -update archive[.ZOO] file ...
-
- This command is like -add, except that if a file being added is already
- in the archive, it is added only if the copy being added is newer than
- the copy already in the archive. The -update commands adds all the
- files that the -freshen command would add (below) and also adds any
- files that are not already in the archive.
-
-
- 9. Freshening an Archive
-
- Format: ZOO -freshen archive[.ZOO] file ...
-
- This command is like -add, except that a file is added only if it is
- already in the archive, AND if the copy being added is newer than the
- copy already in the archive.
-
- The -freshen command simply brings archived files up to date without
- adding any files that weren't already in the archive.
-
-
- 10. Adding comments to an Archive
-
- Format: ZOO -comment archive[.ZOO] file ...
-
- Zoo allows each archived file to have an optional attached comment.
- Any comment attached to a file is listed when the Novice -list command
- is given. The -comment command allows comments to be attached,
- removed, and updated.
-
- When invoked with the -comment command, Zoo goes through the specified
- archive and for each matching file, shows you the comment (if any) and
- allows you to type a replacement comment. Your choices are:
-
- o Type a carriage return alone to leave unchanged any attached
- comment.
- o Type "/END" and carriage return to remove any comment attached to
- the file.
- o Type a comment of up to 65,535 characters long. Terminate it by
- typing "/END" by itself on the last line. The new comment will
- replace any previous comment.
-
- For better formatting in listings, keep each line of the comment to 77
- characters or less. Since comments are not compressed, they should not
- be excessively long.
-
- It is possible to create a file of comments with a text editor and give
- it to Zoo as input using DOS's input redirection character "<". In
- this case, the comments in the file must be in exact sequence. If this
- input file has fewer comments than Zoo expects, comments for remaining
- matching files will be left unchanged.
-
- If end-of-file is reached before all comments have been accounted for,
- Zoo simply leaves all remaining files' comments unchanged. End-of-file
- can be caused by the user typing a control Z interactively or the
- redirected input being smaller than Zoo expects.
-
- Examples: "zoo -comment batch *.bat" shows any comment that may be
- attached to each *.bat file in the archive "batch.zoo", allows you to
- type a new comment. Type as many lines as you wish, then type "/END"
- by itself on a line to terminate the comment. If, however, you want to
- leave the original comment unchanged, just hit return. You may type
- control Z at any point to leave all remaining files' comments
- unchanged.
-
- "zoo -comment qmodem *.doc *.00? <qcomment.txt" makes Zoo read new
- comments from the file "qcomment.txt". For each file matching *.doc
- and *.00?, Zoo reads data from qcomment.txt and reacts exactly as with
- interactive input: an empty line (carriage return alone) in
- "qcomment.txt" leaves the original comment unchanged; "/END" by itself
- removes the original comment; any other text terminated by "/END" on a
- separate line replaces a comment. If "qcomment.txt" ends prematurely,
- all remaining files have their comments left unchanged.
-
-
-
- EXPERT COMMANDS
-
- 1. Adding Files to an Archive
-
- Format: ZOO {au}[cfMnPqu] archive[.ZOO] file ...
-
- Command characters:
-
- a Add files to archive. If "a" is used by itself, each file is
- added either in compressed or in uncompressed form, whichever is
- smaller. To add files without compressing them, use the "f"
- (fast) modifier. If a file with the same name as one being added
- is already present in the archive, it is marked as deleted. For
- more information about deleted files, see the D (delete), U
- (undelete), and P (pack) commands.
-
- If the filespecs given match duplicate filenames, each matching
- filename is used only once. This is true even if the duplicate
- filenames refer to different files in different directories.
-
- Zoo will not add an archive to itself, nor add the archive's
- backup to itself, nor add the temporary file {zoo}.@@@ to an
- archive, nor add any other file that has the same name as these.
-
-
- u Update archive. A specified file is added to the archive if
- a copy of it is already in the archive and the copy being added is
- newer than the copy already in the archive.
-
- Modifiers:
-
- c Add comments when adding files. After each file is added, the
- user is prompted for a comment. If the file being added has
- replaced a file already in the archive, any comment attached to
- the replaced file is shown to the user and becomes attached to the
- newly-added file unless the user changes it. Responses are exac-
- tly as for the Novice -comment command and the Expert c command:
- hit carriage return to leave any previous comment unchanged; type
- "/END" to leave the file without any comment; or type a comment
- and terminate with "/END" on a line by itself.
-
- If the user types control Z in response to a request for a com-
- ment, Zoo will no longer ask for comments for any subsequent files
- and their previous comments, if any, will remain unchanged.
-
- Note: Since comments for replaced files become automatically
- attached to corresponding newly-added files, the freshening of an
- archive with the Novice -freshen command or the Expert au command
- does not cause loss of comments.
-
- f Do a fast add/update by not compressing files as they are added.
-
- M Move files to archive. This makes Zoo erase the original files
- after they have been added to the archive. Files are erased after
- addition of files to the archive is complete, and after any
- requested packing of the archive has been done, and only if Zoo
- detected no errors.
-
- n Add new files only. A specified file is added only if it isn't
- already in the archive.
-
- P Pack archive after files have been added. Normally, when Zoo adds
- a file to an archive and if there was already a copy of the file
- in the archive, the old copy is marked as being deleted. This
- does not actually remove the old copy; it exists in the archive
- and may be undeleted or extracted. Packing the archive permanen-
- tly removes all deleted files from it and recovers the space they
- were using.
-
- The original archive is never changed during the packing process
- except that it is renamed to have an extension of ".bak". The
- packed archive always appears in the current directory on the
- current disk.
-
- q Be quiet. Normally Zoo lists the name of each file as it is
- added. The q modifier suppresses this. Any error messages are
- always shown.
-
- u Update archive. This has exactly the same effect as when used as
- a command character (see above).
-
- All combinations of the [cfMnPqu] modifiers are valid. The combination of n
- and u together adds a file to the archive either if the file is not already
- in the archive, OR if the file is already in the archive but the archived
- copy is older than the copy being added.
-
- Examples:
-
- "zoo a pascal *.*" adds all files in the current directory to the ar-
- chive called "pascal.zoo". If the archive does not already exist,
- it is created. Each file is added in compressed or uncompressed
- form, whichever is smaller.
-
- "zoo aM pascal *.*" adds the same files and then deletes the original
- unarchived files.
-
- "zoo af pascal *.*" adds the same files without any compression.
-
- "zoo aP pascal *.pas" adds all files matching "*.pas" to the archive
- "pascal.zoo". After all specified files have been added, Zoo packs
- the archive if it finds any deleted files in it.
-
- "zoo aPc pascal *.pas" does exactly the same but also prompt the user
- for a comment for each file after it is added.
-
- "zoo nfP a:/archives/cobol /cobol/" adds all files in the the /cobol
- subdirectory on the current disk to the archive "cobol.zoo" in the
- subdirectory "a:/archives", without doing compression. After the
- files have been added, if Zoo finds any deleted files in the
- archive, it packs the archive. Packing leaves the original
- archive unchanged but renamed to have an extension of ".bak". A
- new packed copy of it appears in the current directory of the
- current disk.
-
- "zoo uq silence silence.com / c:\bin\*.exe" adds the following
- files to archive "silence.zoo": (a) the file "silence.com";
- (b) all files in the root directory; (c) all files in the direc-
- tory c:\bin that have the extension ".exe". However, since the
- command u was used, no file is added unless a copy of it is
- already present in the archive. Because of the q modifier, Zoo
- does not list names of files as they are added.
-
-
- 2. Extracting Files from an Archive
-
- Format: ZOO {ex}[dNoOpq] archive[.ZOO] [file] ...
-
- Command characters:
-
- x Extract files. Files that were compressed during addition to the
- archive are decompressed during extraction. All extracted files
- go into the current directory on the current disk. Not giving a
- filespec is equivalent to giving "*.*" as the filespec.
-
- e Extract files. Synonym for x.
-
- Modifiers:
-
- d Extract deleted files also. Normally, deleted files are not
- extracted. The d modifier causes deleted files to be extracted in
- addition to the normal files. Giving the d modifier twice (e.g.
- "zoo xdd archive") makes Zoo extract only deleted files.
-
- N Send extracted data to Neverland. The data are extracted as
- without the N modifier but they are not sent to disk. This tests
- the integrity of an archive. Any error messages will appear on
- the screen as usual. The absence of any CRC or other error mes-
- sage indicates with a high degree of confidence that the archive
- is not corrupted.
-
- The q modifier may be used in addition to prevent filenames being
- listed on the screen. Error messages are never suppressed.
-
- If any filespecs are supplied, the "zoo xN ..." command will
- attempt to extract only the specified files.
-
- The integrity of deleted files will not be checked unless the d
- modifier is also used. Thus to fully check an archive that
- contains deleted files, use the format "zoo xNd archive".
-
- O Overwrite files. Normally, if a file being extracted would over-
- write an already-existing file of the same name, Zoo asks you if
- you really want to overwrite it. You may answer the question with
- "y", which means yes, overwrite; or "n", which means no, don't
- overwrite; or "a", which means assume the answer is "y" for this
- and all subsequent files.
-
- The O modifier makes Zoo assume that files may always be
- overwritten. It may not be combined with the N or p modifiers.
-
- o The o modifier is equivalent to the O modifier if and only if it
- is given at least twice. Thus "zoo xoo ..." is equivalent to "zoo
- xO ...". Otherwise it is ignored.
-
- p Pipe extracted data to standard output. Instead of being sent to
- individual disk files, all extracted data are concatenated and
- sent to the standard output, which is normally the screen. The
- output may be redirected to any other destination such as a prin-
- ter, a communications port or a disk file of your choice, by using
- the MS-DOS redirection character ">".
-
- When thus piping data, Zoo precedes the data of each extracted
- file by a brief header displaying the name of the file. The q
- modifier suppresses this header.
-
- Error messages are piped to standard output as well. However, if a
- bad CRC is detected, the bad CRC message is sent both to the screen
- and to the standard output.
-
- q Be quiet. Normally Zoo lists the name of each file as it is
- extracted. The q modifier suppresses this. (Error messages are
- always shown.) When used in combination with the p modifier, the
- q modifier suppresses the filename header preceding each extracted
- file's data.
-
- Examples:
-
- "zoo x qmodem" extracts all files from the archive "qmodem.zoo",
- listing on the screen the name of each file as it is extracted.
-
- "zoo xq qmodem" is equivalent to "zoo x qmodem" except that filenames
- are not listed on the screen as files are extracted.
-
- "zoo x qmodem *.com *.00?" extracts all *.com and *.00? files from
- "qmodem.zoo".
-
- "zoo xp zoo *.doc >zoo.txt" extracts all *.doc files from the archive
- "zoo.zoo" and sends them, concatenated together and with each file
- being preceded by a header identifying it, to the file "zoo.txt".
-
- "zoo xpq zoo *.doc >zoo.txt" does the same except that file data are
- not preceded by an identifying header.
-
- "zoo xNd procomm" extracts all files, including deleted files, from the
- archive "procomm.zoo" but the extracted data are discarded. Any
- CRC or other errors will be reported on the screen. The absence
- of any error message indicates with a high degree of confidence
- that the archive is not corrupted.
-
-
- 2. Listing Files in an Archive
-
- Format: ZOO {lv}[dfv] archive[.ZOO] [file] ...
-
- Command characters:
-
- l List filenames in archive. A list of all filenames in the archive
- is presented, including the date and time of each file, its origi-
- nal size, its current size as stored in the archive, and the per-
- centage size decrease due to compression (called CF or compression
- factor). If no filespec is supplied, all files in the archive are
- shown except deleted files. Optionally, deleted files may be
- listed; see the description of the d modifier.
-
- If a file would need to be extracted with a version of Zoo higher
- than the current version, Zoo displays the minimum version number
- needed.
-
- A summary line displays a count of files listed, the total of all
- original sizes and current sizes, and a net compression factor.
- The actual size of an archive is always somewhat greater than the
- total of the current sizes of files in it because of the directory
- information that is also kept in the archive.
-
- v Verbose list. Equivalent to l but also shows any comment attached
- to each file. Version 2.00 of Zoo is expected to allow the user
- to specify that only the first n lines of each comment be shown.
-
- Modifiers:
-
- d List deleted files also. Normally, only files that have not been
- deleted are shown. The d modifier gives a combined display inclu-
- ding both deleted and not deleted files. Deleted files are marked
- in the normal listing with "DEL". Giving the the d modifier at
- least twice (e.g., "zoo ldd archive") displays only deleted files.
-
- f Fast listing. The listing gives a multicolumn display of only the
- filenames, followed by a count of deleted files. Overrrides the v
- command and the v modifier and prevents any comments from being
- listed.
-
- v Verbose list. Equivalent to the v command.
-
- The d modifiers may be separately combined with the f and v modifiers. If
- the f and v modifiers are used together, f overrrides v.
-
-
- 3. Deleting Files in an Archive
-
- Format: ZOO D[Pq1] archive[.ZOO] file ...
-
- Command character:
-
- D Delete files. The specified files are marked as being deleted.
- The file remains in the archive, however, and may be listed and
- extracted. The file does not permanently disappear until the
- archive is packed (see the P modifier below and the P command
- elsewhere). If there are multiple instances of the file in the
- archive, all are deleted; the 1 modifier will prevent this.
-
- Modifiers:
-
- P Pack archive. After the delete command has taken effect, and if
- at least one file was deleted, Zoo proceeds to pack the archive.
- Packing the archive permanently removes all deleted files from the
- archive. The packed archive always appears in the current
- disk/directory and the original unpacked archive is renamed to
- have an extension of ".bak". (To not keep the backup copy, use
- the P command described elsewhere.) See also the P modifier to
- the a command.
-
- As a safety feature, if the user deletes all files in an archive,
- no packing is done and the deleted files may be recovered with the
- U command. To delete an archive entirely, use DOS's "del" or
- "erase" command.
-
- q Be quiet. As files are deleted, their names are normally listed
- on the screen. The q modifier suppresses this information. Error
- messages are always shown.
-
- 1 One file only. This option (the digit one, not the letter ell)
- makes Zoo delete at most one file, regardless of how many file-
- names match the supplied filespecs. This option allows the user
- to selectively delete only the first of multiple occurrences of
- the same file. See also the 1 modifier to the U (undelete)
- command.
-
-
- 4. Undeleting Files in an Archive
-
- Format: ZOO U[q1] archive[.ZOO] file ...
-
- Command character:
-
- U Undelete files. The specified files are marked as being no longer
- deleted. If there are multiple instances of the same deleted
- file, all are undeleted; the 1 modifier will prevent this.
-
- Modifiers:
-
- q Be quiet. As files are undeleted, their names normally are listed
- on the screen. The q modifier suppresses this information. Error
- messages are always shown.
-
- 1 One file only. This option (the digit one, not the letter ell)
- makes Zoo undelete at most one file. Regardless of how many files
- match the filespec(s) supplied, Zoo stops after undeleting one.
-
- Every time a file is added to an archive, any (one) previous
- archived file having the same name is marked deleted. If the same
- file is repeatedly added to an archive, multiple deleted instances
- of the file appear in the archive. Any one of these may be
- selectively extracted by careful and patient successive use of the
- 1 option combined with the U (undelete) and D (delete) commands.
-
-
- 5. Adjusting the Timestamp of an Archive
-
- Format: ZOO T[q] archive[.ZOO]
-
- Command character:
-
- T Zoo normally tries to always keep time and date stamp of archives
- to be the same as that of the newest file in the archive. The T
- command allows this to be done manually at any time. An
- informative message is given.
-
- The T command is useful if you have downloaded an archive via
- telecommunications and you want to fix its timestamp to reflect
- the age of the newest file in the archive.
-
- Modifier:
-
- q The q modifier suppresses the informative message.
-
-
- 6. Packing an Archive
-
- Format: ZOO P[EPq] archive[.ZOO]
-
- Command character:
-
- P When Zoo adds a file to an archive, any previous instance of that
- file in the archive is marked as deleted but remains in the ar-
- chive. The P command packs an archive and permanently removes all
- deleted files from it. Unless the user specifies otherwise, the
- original archive is renamed to have the extension ".bak" and
- remains otherwise unchanged. The packed archive always appears on
- the current disk/directory.
-
- Files appearing in the packed archive will retain any attached
- comments.
-
- Floppy disk users who pack an archive that takes up more than half
- the disk space should keep the original archive on a disk differ-
- ent from the current disk. The packed copy of the archive will
- appear on the current disk.
-
- Zoo archives can pick up garbage at the end because of Xmodem file
- transfers or due to being stored on certain computer systems that
- round up file size to a power of two. The P command will truncate
- such an archive to its proper size.
-
- If packing an archive would result in nothing being left in the
- archive, the packing leaves the archive unchanged.
-
- Modifiers:
-
- E When an archive is packed, the original copy of the archive is
- normally not deleted but simply renamed to have the extension
- ".bak". For example, packing "apple.zoo" will give a new packed
- archive called "apple.zoo", and a backup copy "apple.bak" that is
- identical to the original archive. The user may specify deletion
- of the backup copy with the E modifier.
-
- P Normally, if Zoo finds that a backup copy of an archive already
- exists, it will refuse to pack the archive again, for that would
- mean losing the old backup copy. The P forces Zoo to proceed with
- packing and delete the old backup copy. For example, suppose both
- "london.zoo" and "london.bak" exist. Zoo will give an error
- message in response to the command "zoo P london"; however, it
- will pack the archive if the command "zoo PP london" is given.
-
- When packing is done, the packed archive is initially created as a temporary
- file called "{zoo}.@@@". After successful packing, this temporary file is
- renamed to the name of the original archive while the original archive is
- renamed to have an extension of ".bak". If archive packing is aborted for
- any reason, the temporary file "{zoo}.@@@" is left in the directory. This
- file also appears if, after packing is completed, Zoo is unable to rename
- this file to the name of the original archive.
-
-
- DISK SPACE CONSIDERATIONS
-
- When Zoo is adding files to an archive, it gives an error message and exits
- as soon as disk space is too low to add the next specified file.
-
- When Zoo is extracting files from an archive, however, it attempts to go on
- as long as it can. If a file being extracted would exceed the space avail-
- able on disk, Zoo gives an error message but goes on to attempt to extract
- the next matching file. It aborts entirely only if the disk becomes
- completely full.
-
- Archive packing requires enough disk space to create a new copy of the
- archive. The archive to be packed may be kept on a disk other than the
- current disk. The packed archive appears on the current disk.
-
-
- INTERRUPTING WITH CONTROL C
-
- Zoo may be interrupted with control C at any time.
-
- Aborting operation with control C should not result in any damaged files.
- Rapid repeated hitting of control C could potentially leave files in an
- inconsistent state, although it has not been observed to happen. (If you
- hit control C once and Zoo doesn't seem to notice, it probably missed it;
- it should be safe to wait about five seconds and try again.)
-
- Because of the way MS-DOS handles user interrupts, it was found necessary,
- to preserve archive integrity, that Zoo disable break status (shown and set
- by the DOS "break" command). Zoo 1.03N does not restore break status to its
- original value when it exits; version 2.00 is expected to do so.
-
-
- EXIT STATUS
-
- Zoo returns an exit status of 0 if no errors occurred, and 1 if an error
- occurred or if no files matched when listing an archive. This exit status
- may be tested in a batch file using the DOS "if errorlevel 1 goto ..."
- statement or from an executing parent process using DOS system call 4D
- hexadecimal.
-
-
- ARCHIVE INTEGRITY
-
- When Zoo adds a file to an archive, it is always appended to the end of the
- archive, so a system crash should not normally affect the integrity of the
- archive. If Zoo is interrupted while adding a file to an archive, the added
- file may not show up as being in the archive but some or all of its data
- will have been appended to the archive. The P (pack) command will restore
- the archive to its original size.
-
- When Zoo appends a file to an archive and a previous instance of the same
- file exists in the archive, the previous instance is marked deleted. This
- involves a direct (random) access write to the archive. In theory, if there
- were a system crash while the disk hardware was writing an updated directory
- entry in an archive, damage to the archive could occur. In practice, this
- is likely to be very rare.
-
- It is recommended that backup copies be always kept of valuable archives.
-
-
- CONVERSION FROM OTHER FORMATS TO ZOO FORMAT
-
- The batch program ATOZ.BAT can help you convert a subdirectory full of files
- in another format (such as *.LBR and *.ARC) to Zoo format. See ATOZ.DOC for
- instructions. Due to differences between the batch languages of DOS 3.x and
- DOS 2.x, Atoz 1.00 works only with DOS 2.x.
-
-
- VERSION COMPATIBILITY
-
- Zoo 1.10 can add information to an archive in the form of attached comments
- that earlier versions of Zoo cannot interpret. Earlier versions of Zoo will
- list and extract files from version 1.10 archives and delete and undelete
- files in them. But to avoid any loss of information, earlier versions of
- Zoo will refuse to modify version 1.10 archives in any other way. Instead,
- the following message will be given: "Version 1.10 of Zoo is needed to
- fully manipulate this archive."
-
-
- VERSION 2.00
-
- Version 2.00, when released, is expected to have the following additional
- features:
-
- 1. Filename listings will be alphabetized.
-
- 2. Source code in (fairly) generic *NIX-compatible C will be available.
-
- 3. A listing of files in the archive will show the first N lines of the
- comment for each file, N being specified by the user.
-
- 4. Multiple instances of the same file in an archive will be properly
- handled, each being identified by a version number.
-
- 5. It will be possible to execute archived programs. Zoo will directly
- extract the program into memory and execute it rather than creating a
- temporary file first.
-
-
- ACKNOWLEDGMENTS
-
- Zoo uses a dynamic Lempel-Ziv-Welch data compression procedure adapted from
- assembly routines written by Tom Pfau.
-
- Ball State University and its Department of Computer Science provided me
- with a working environment, software, and other support.
-
-
- FEEDBACK
-
- Bug reports and other feedback should be directed to me at these electronic
- mail addresses.
-
- GEnie: DHESI
- People/Link: OLS806
- Arpanet/CSnet: dhesi%bsu@csnet-relay.ARPA
- UUCP: ...!seismo!csnet-relay.ARPA!bsu!dhesi
-
- Telephone calls are not encouraged but if absolutely necessary, try
- (317) 285-8641 during working hours, Eastern Standard Time.